const config = require('../config');
const utils = require('./utils');
const exception = require('../exception');
const moment = require('moment');
module.exports = {
    config: config,
    utils: utils,
    moment:moment,
    genPageData(page, data) {
        return {
            content: data.rows,
            index: page.index,
            size: page.size,
            totalElements: data.count
        }
    },
    checkLogin(req, res, callbackFn) {
        let token = req.get('token');
        console.log('获取的token======================>' + token);
        console.log('内存中的token===>'+JSON.stringify(config.loginUsers));
        if (token && config.loginUsers[token]) {
            callbackFn();
        } else {
            res.send(exception['400']);
        }
    },
    // 根据token解析出商户id
    parseMerchantId(req) {
        let token = typeof req == 'string' ? req :req.get('token');
        return config.loginUsers[token]['merchantId'];
    },
    // 根据token解析出用户id
    parseUserId(req){
        let token = req.get('token');
        return config.loginUsers[token]['userId'];
    },
    // 两个值是否相等
    isEqual(val1,val2){
        return val1 == val2;
    },
    // 获取数据集中的第一项数据
    getDBObject(DBArray){
        return JSON.parse(JSON.stringify((DBArray || [])))[0];
    },
    // 是否存在
    isExit(obj){
        return !!obj;
    },
    isExitAll(obj,arr){
        arr = arr || [];
        let result = [];
        arr.forEach(r=>{
            if(!obj[r]){
                result.push(r);
            }
        });
        return {
            pass:result.length === 0,
            data:result
        };
    },
    // 判断是否是方法
    isFn(fn){
        return typeof fn =='function';
    },
    // 将数据库数据转换成枚举数据
    parseEnumeration(data,param){
        console.log('parseEnumeration',data);
        let result = [];
        (data||[]).forEach(d=>{
            result.push({
                name:d[param.name],
                value:d[param.value]
            })
        });
        return result;
    }
};
